package a26_Collection.List;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

/**
 * @Author quan
 * @Description List接口的5种遍历方式
 * @Date 2023/3/14 16:07
 */
public class Traversal {
    public static void main(String[] args) {
        //创建List集合，List是个接口，不能直接创建对象，因此在这里使用它的实现类ArrayList创建对象
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");

        /**：List接口的5种遍历方式：可以使用Collection中的3种，以及自身独有的2种
         * 1、普通for循环：因为List是有索引的
         */
//        for (int i = 0; i < list.size(); i++) {
//            String s = list.get(i);
//            System.out.println(s);
//        }

        /** 2、List特有的列表迭代器方式
         * 其实ListItertor是Itertor的子接口，使用方式是相同的，遵循Itertor的所有原则：
         * 包括在迭代器遍历的时候不能使用集合的方式添加或删除元素，但是可以用itertor对象删除元素
         * 相较于Itertor,ListItertor一个方法：可以在迭代器遍历的时候使用ListItertor添加元素
         */
        ListIterator<String> listIt = list.listIterator();
        while (listIt.hasNext()){
            String str = listIt.next();
            if(str.equals("aaa")){
                listIt.add("qq");//迭代器的方式添加元素
            }
        }
        System.out.println(list);


    }
}
